package cn.zymall.scheduled.controller;

import cn.zymall.common.controller.crud.BaseController;
import cn.zymall.common.model.SysTask;
import cn.zymall.common.model.TaskAdminView;
import cn.zymall.common.utils.time.TimeUtil;
import cn.zymall.scheduled.service.TaskService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author xuxianda
 * @Description: 商品定时任务控制器
 * @date 2020/8/19 10:38
 * @Copyright
 * @return
 **/
@RestController
@RequestMapping("/task")
public class TaskController extends BaseController<TaskService, SysTask> {

    @Autowired
    TaskService taskService;
    /**
     * 时间工具类
     */
    @Autowired
    TimeUtil timeUtil;

    /**
     * 添加定时任务
     *
     * @param sysTask
     * @return
     */
    @Override
    @PostMapping
    public boolean insert(@RequestBody SysTask sysTask) {
        System.out.println(sysTask);
        try {
            /**
             * 初始化状态值 设置为 0 （未处理）
             */
            sysTask.setTaskStatus(0);
            /**
             * 将前端传来的时间转型
             */
//            Date date = timeUtil.stringToDate(sysTask.getDateTime());
//            sysTask.setTaskTime(date);
            return taskService.save(sysTask);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    @Override
    public Object select(Integer page, Integer rows) {
        return super.select(page, rows);
    }

    @GetMapping("/andAdmin")
    public PageInfo selectTaskAdminView(Integer page, Integer rows, TaskAdminView taskAdminView) {
        return taskService.select(page, rows, taskAdminView);
    }

    /** //测试分布式锁
     @PostMapping("/lock") public boolean lock() {
     System.out.println(redisLock);
     return redisLock.lock("1", "10086");
     }

     @PostMapping("/unlock") public boolean unlock() {
     System.out.println(redisLock);
     return redisLock.unlock("1","10086");
     }
     **/
}
